<?php

class Application_Model_Cuadros extends Sgit_Model
{
    protected $_name = 'cuadros';
    protected $_primary = 'id';


    public function getCuadros($values = array())
    {

       



        //permite pasar unico parametro id del contador
        if(is_numeric($values)){
            $id=$values;unset($values);$values['id']=$id;unset($id);
        } 

        $subselect = $this->getAdapter()
            ->select()
            ->from(array('circuitos'), array('id_contador'))
            ->where('tcircuito=  ?', 'g1')
            ->where('id_cuadro= cuadros.id')
            ->limit(1);


        $select = $this->getAdapter()
            ->select()
            ->from(array($this->_name), array('*', 'contador' => new Zend_Db_Expr("($subselect)")))
            ->joinLeft('salas', "salas.id = {$this->_name}.id_sala", array('sala' => 'nombre'))
            ->joinLeft('centros_continuidad', "centros_continuidad.id = {$this->_name}.id_cc", array('cc' => 'nombre'));


        if (is_array($values['id']) || is_numeric($values['id']))
        {
            $select->where("{$this->_name}.id IN (?)", $values['id']);
        }


        if (is_numeric($values['id_zona']))
            $select->where("{$this->_name}.id_zona= ?", $values['id_zona'], integer);
        if (is_numeric($values['id_sala']))
            $select->where("{$this->_name}.id_sala= ?", $values['id_sala'], integer);
        if (is_numeric($values['id_cc']))
            $select->where("{$this->_name}.id_cc= ?", $values['id_cc'], integer);
        if ($values['servicio'])
            $select->where("{$this->_name}.servicio= ?", $values['servicio']);


        $rows = $this->getAdapter()->fetchAll($select);

        foreach ($rows as $v)
        {
            $ids_cuadros[]=$v['id'];
            
            if (is_numeric($v['contador']))
                $generales[] = $v['contador'];
        }


        if($generales){
            $m_contadores = new Application_Model_Contadores();
            $generales = $m_contadores->getContadores(array('id' => $generales));
            $generales = $m_contadores->assocArray2($generales, 'id');
        }

        if($ids_cuadros){
            $m_circuitos  = new Application_Model_Circuitos();
            $circuitos = $m_circuitos->getCircuitos(array('id_cuadro' => $ids_cuadros));
            $circuitos = $m_circuitos->assocArray($circuitos, 'id_cuadro');
        }
 
 
        $cuadros_espejo=$this->getAssoc('id','cuadro');

 

        foreach ($rows as & $v)
        {
          
            $v['contador'] = $generales[$v['contador']];
            $v['circuitos']=$circuitos[$v['id']];
            $v['ncircuitos']=count($circuitos[$v['id']]);
            $v['cuadro_espejo']=$cuadros_espejo[$v['espejo']];
            
            foreach($circuitos[$v['id']] as $g)
            {
                $v['proyectos'][]=$g['id_proyecto'];
            }
            

        }
    //Zend_Debug::dump($rows);    
        if (is_numeric($values['id']))
            return $rows[0];
        else
            return $rows;
    }
    



}
